package com.yh.correct.service.impl;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import com.yh.common.utils.DateUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.yh.correct.dao.IEchartsMapper;
import com.yh.correct.service.IEchartsService;

/**
 * 作者:王登科
 * 创建时间:2017-03-15
 * 描述:报表业务实现
 */
@Service
public class EchartsServiceImpl implements IEchartsService {

	@Autowired
	private IEchartsMapper echartsMapper;
	/**
	 * 查询月份
	 */
	@Override
	public List<String> findMonth() {
		List<String> list = null;
		try {
			list = echartsMapper.getMonth();
		} catch (Exception e) {
			e.printStackTrace();
		}
		return list;
	}

	/**
	 * 查询开展试点数量
	 */
	@Override
	public List<Integer> findPilotCount(){
		List<Integer> list = null;
		try {
			list = echartsMapper.getPilotCount();
		} catch (Exception e) {
			e.printStackTrace();
		}
		return list;
	}

	/**
	 * 查询社会工作人员
	 */
	@Override
	public List<Integer> findSocialWorkers() {
		List<Integer> list = null;
		try {
			list = echartsMapper.getSocialWorkers();
		} catch (Exception e) {
			e.printStackTrace();
		}
		return list;
	}

	/**
	 * 查询政府工作人员
	 */
	@Override
	public List<Integer> findGovernmentWorkers() {
		List<Integer> list = null;
		try {
			list = echartsMapper.getGovernmentWorkers();
		} catch (Exception e) {
			e.printStackTrace();
		}
		return list;
	}

	/**
	 * 查询成功矫正人员
	 */
	@Override
	public List<Integer> findSuccessfulCorrection() {
		List<Integer> list = null;
		try {
			list = echartsMapper.getSuccessfulCorrection();
		} catch (Exception e) {
			e.printStackTrace();
		}
		return list;
	}

	@Override
	public List<String> findProperties() {
		List<String> list = null;
		try {
			list = echartsMapper.getProperties();
		} catch (Exception e) {
			e.printStackTrace();
		}
		return list;
	}
	/**
	 *查询所有要统计的数量 
	 */
	@Override
	public List<Integer> findAllCount() {
		List<Integer> list = null;
		try {
			list = echartsMapper.getAllCount();
		} catch (Exception e) {
			e.printStackTrace();
		}
		return list;
	}


	/**
	 * 查询统计字段
	 */
	@Override
	public List<String> findName() {
		List<String> list = null;
		try {
			list = echartsMapper.getName();
		} catch (Exception e) {
			e.printStackTrace();
		}
		return list;
	}

	/*下面开始新的查询*/

	/*月度报表开始*/
	/**
	 * 获取矫正人员的年龄信息
	 * @return
	 */
	@Override
	public List<Integer> getAllAge() {

		List<Integer> age=new ArrayList<Integer>();
		List<Date> bir=new ArrayList<Date>();
		try {
			bir = echartsMapper.getAllBirth();
			for(Date d:bir){
				if(d!=null){//添加非空验证
					//根据查询到的用户的出生日期数据计算年龄  PS：切记，数据必须手动指定为长整形，要不然会精度丢失，数据不准确
					Integer cage=(int) ((DateUtils.getSysDate().getTime()-d.getTime())/(12*30*24*60*60*1000L)+1);
					age.add(cage);
				}
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
		return age;
	}

	/**
	 * 获取矫正人员的性别信息
	 * @return
	 */
	@Override
	public List<String> getAllSex() {
		List<String> list = null;
		try {
			list = echartsMapper.getAllSex();
		} catch (Exception e) {
			e.printStackTrace();
		}
		return list;
	}

	/**
	 * 获取矫正人员的文化程度
	 * @return
	 */
	@Override
	public List<String> getAllCulture() {
		List<String> list = null;
		try {
			list = echartsMapper.getAllCulture();
		} catch (Exception e) {
			e.printStackTrace();
		}
		return list;
	}

	/**
	 * 获取矫正人员的犯罪类型
	 * @return
	 */
	@Override
	public List<String> getAllCrime() {
		List<String> list = null;
		try {
			list = echartsMapper.getAllCrime();
		} catch (Exception e) {
			e.printStackTrace();
		}
		return list;
	}

	/**
	 * 获取矫正人员的户籍类型
	 * @return
	 */
	@Override
	public List<String> getAllHousehold() {
		List<String> list = null;
		try {
			list = echartsMapper.getAllHousehold();
		} catch (Exception e) {
			e.printStackTrace();
		}
		return list;
	}
	/*月度报表结束*/

	/*季度报表开始*/

	/**
	 * 查询所有矫正人员的开始日期
	 * @return
	 */
	@Override
	public List<Date> getAllStartDateByYear(String year) {
		List<Date> list = null;
		try {
			list = echartsMapper.getAllStartDateByYear(year);
		} catch (Exception e) {
			e.printStackTrace();
		}
		return list;
	}

	/**
	 * 查询所有矫正人员的结束日期
	 * @return
	 */
	@Override
	public List<Date> getAllEndDateByYear(String year) {
		List<Date> list = null;
		try {
			list = echartsMapper.getAllEndDateByYear(year);
		} catch (Exception e) {
			e.printStackTrace();
		}
		return list;
	}

	/**
	 * 根据季度查询当前所有在矫人员的数量
	 * @param year 1,2,3,4 分别代表第一二三四季度，一季度：12、1、2月 二季度：3、4、5月 三季度：6、7、8月 四季度：9、10、11月
	 * @return
	 */
	@Override
	public List<Date> getCorrectedCountByYear(String year) {
		List<Date> list = null;
		try {
			list = echartsMapper.getCorrectedCountByYear(year);
		} catch (Exception e) {
			e.printStackTrace();
		}
		return list;
	}

	/**
	 * 根据季度查询新入矫正人员的犯罪类型
	 * @param year 1,2,3,4 分别代表第一二三四季度，一季度：12、1、2月 二季度：3、4、5月 三季度：6、7、8月 四季度：9、10、11月
	 * @return
	 */
	@Override
	public List<String> getCrimeByYear(String year) {
		List<String> list = null;
		try {
			list = echartsMapper.getCrimeByYear(year);
		} catch (Exception e) {
			e.printStackTrace();
		}
		return list;
	}
	/*季度报表结束*/
}
